package com.tuocent.dagv2.service;

import com.tuocent.dagv2.common.AjaxResult;
import com.tuocent.dagv2.common.entity.LoginUserInfo;
import com.tuocent.dagv2.entity.ArchivesImport;
import com.baomidou.mybatisplus.extension.service.IService;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import org.springframework.scheduling.annotation.Async;
import org.springframework.ui.Model;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.Map;
import java.util.concurrent.Future;

/**
 * <p>
 * 数据导入信息 服务类
 * </p>
 *
 * @author Vincent
 * @since 2025-09-12
 */
public interface IArchivesImportService extends IService<ArchivesImport> {

    String archivesImport(Model model);

    AjaxResult getArchivesImportData(Map<String, Object> params);

    void getDataTemplate(HttpServletResponse response, String pid, String tid, String model) throws IOException;

    String setArchivesImportData(Model model, String pid, String tid, String id, String importModel);

    AjaxResult ImportArchivesFile(HttpSession session, String pid, String tid, Integer model, String batchCode, MultipartFile file);

    AjaxResult delArchivesImport(String id);

    Future<Integer> archivesImportExecute(LoginUserInfo loginUser, String id) throws IOException, InterruptedException, NoSuchFieldException, IllegalAccessException;

    String imagesImport(Model model);

    AjaxResult getImagesImportData(Map<String, Object> params);

    String setImagesImportData(Model model, String pid, String tid, String id, String classifyId, String classifyModel);

    AjaxResult saveImagesImportTask(HttpSession session, ArchivesImport data);

    AjaxResult ImagesImportExecute(HttpSession session, Map<String, Object> params);
}
